package in.view.holder;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.ImageLoader;
import in.lib.Constants;
import in.lib.manager.ImageOptionsManager;
import in.lib.utils.Views.InjectView;
import in.lib.utils.Views.Injectable;
import in.lib.view.AvatarImageView;
import in.lib.view.FlowLayout;
import in.lib.view.LinkedTextView;
import in.lib.view.TextChronometer;
import in.model.Channel;
import in.rob.client.R;
import in.view.holder.base.Holder;
import lombok.Getter;
@Injectable
public class ChannelHolder extends Holder<Channel>
{
@Getter @InjectView(R.id.recent_message) protected View recentMessage;
@Getter @InjectView(R.id.title) protected TextView title;
@Getter @InjectView(R.id.post_text) protected LinkedTextView postText;
@Getter @InjectView(R.id.avatar) protected AvatarImageView avatar;
@Getter @InjectView(R.id.date) protected TextChronometer date;
@Getter @InjectView(R.id.username_title) protected TextView usernameTitle;
@Getter @InjectView(R.id.username_subtitle) protected TextView usernameSubtitle;
@Getter @InjectView(R.id.avatar_container) protected FlowLayout avatarContainer;
public ChannelHolder(View view)
{
super(view);
}
@Override public void populate(Channel model)
{
if (!TextUtils.isEmpty(model.getTitle()))
{
title.setText(model.getTitle());
}
recentMessage.setVisibility(View.GONE);
avatarContainer.setVisibility(View.GONE);
if (model.getRecentMessage() != null && model.getRecentMessage().getPostText() != null && !model.getRecentMessage().isDeleted())
{
postText.setText(model.getRecentMessage().getPostText());
postText.setLinkMovementMethod();
postText.setMaxLines(4);
avatar.setUser(model.getRecentMessage().getPoster());
date.setTime(model.getRecentMessage().getDate());
usernameTitle.setText(model.getRecentMessage().getPoster().getFormattedMentionNameTitle());
usernameSubtitle.setText(model.getRecentMessage().getPoster().getFormattedMentionNameSubTitle());
recentMessage.setVisibility(View.VISIBLE);
}
int count = avatarContainer.getChildCount();
if (count > 0)
{
for (int index = 0; index < count; index++)
{
ImageLoader.getInstance().cancelDisplayTask((ImageView)avatarContainer.getChildAt(index));
}
}
avatarContainer.removeAllViews();
if (model.getReaders() != null && model.getReaders().size() > 2)
{
avatarContainer.setVisibility(View.VISIBLE);
int counter = 0;
for (final String user : model.getReaders())
{
if (model.getRecentMessage() != null && user.equals(model.getRecentMessage().getPoster().getId()))
{
continue;
}
ImageView image = (ImageView)LayoutInflater.from(avatarContainer.getContext()).inflate(R.layout.channel_avatar_stub, avatarContainer, false);
avatarContainer.addView(image);
ImageLoader.getInstance().displayImage(Constants.API_URL + Constants.API_STREAM + Constants.API_VERSION + "users/" + user + "/avatar?avatar=1&w=60&id=" + user, image, ImageOptionsManager.getInstance().getAvatarImageOptions());
if (counter++ > 15) break;
}
}
}
}